import type { SysMenu } from '@nbase/db';
import type { IMenu, IPaginationResponse } from '@nbase/shared';
import { COMMON_STATUS } from '@nbase/shared';

/**
 * SysMenu -> IMenu 映射（对外返回使用）
 *
 * 注意：当前 sys_menu 表中没有 status 字段，这里暂时统一视为启用状态。
 */
export function toMenu(menu: SysMenu): IMenu {
  return {
    id: menu.id,
    name: menu.name,
    permission: menu.permission,
    type: menu.type,
    sort: menu.sort,
    parentId: menu.parentId,
    path: menu.path,
    icon: menu.icon,
    component: menu.component,
    status: COMMON_STATUS.ACTIVE,
    visible: menu.visible,
    keepAlive: menu.keepAlive,
    createdAt: menu.createdAt?.toISOString(),
    updatedAt: menu.updatedAt?.toISOString(),
  };
}

/**
 * 分页结果 SysMenu -> IMenu
 */
export function toMenuPage(page: IPaginationResponse<SysMenu>): IPaginationResponse<IMenu> {
  return {
    ...page,
    items: page.items.map(toMenu),
  };
}

